home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- '''Exposes Orca as a DBus service for testing and watchdog purposes.'''
- __id__ = '$Id: dbusserver.py 4221 2008-09-15 08:11:23Z wwalker $'
- __version__ = '$Revision: 4221 $'
- __date__ = '$Date: 2008-09-15 04:11:23 -0400 (Mon, 15 Sep 2008) $'
- __copyright__ = 'Copyright (c) 2008 Sun Microsystems Inc.'
- __license__ = 'LGPL'
- import dbus
- import dbus.service as dbus
- import dbus.mainloop.glib as dbus
- import debug
- import settings
- loggingFileHandlers = { }
- loggingStreamHandlers = { }
-
- class Server(dbus.service.Object):
-
- def __init__(self, object_path, bus_name):
- dbus.service.Object.__init__(self, None, object_path, bus_name)
-
-
- def setDebug(self, debugFile, debugLevel):
- '''Sets the file to send detailed debug information.'''
- if not settings.enableRemoteLogging:
- return None
- debug.println(debug.LEVEL_FINEST, 'DBus Logging.setDebug(%s, %d)' % (debugFile, debugLevel))
- if debug.debugFile:
- debug.debugFile.close()
- debug.debugFile = None
-
- if debugFile and len(debugFile):
- debug.debugFile = open('%s.debug' % debugFile, 'w', 0)
-
- debug.debugLevel = debugLevel
-
- setDebug = dbus.service.method(dbus_interface = 'org.gnome.Orca.Logging', in_signature = 'si', out_signature = '')(setDebug)
-
- def setLogFile(self, logFile):
- '''Sets the file to send speech and braille logging information.'''
- if not settings.enableRemoteLogging:
- return None
- import logging
- debug.println(debug.LEVEL_FINEST, 'DBus Logging.setLogFile(%s)' % logFile)
- for logger in [
- 'braille',
- 'speech']:
- log = logging.getLogger(logger)
- formatter = logging.Formatter('%(message)s')
-
- try:
- loggingFileHandlers[logger].flush()
- loggingFileHandlers[logger].close()
- log.removeHandler(loggingFileHandlers[logger])
- except:
- settings.enableRemoteLogging
-
- if logFile and len(logFile):
- loggingFileHandlers[logger] = logging.FileHandler('%s.%s' % (logFile, logger), 'w')
- loggingFileHandlers[logger].setFormatter(formatter)
- log.addHandler(loggingFileHandlers[logger])
-
- log.setLevel(logging.INFO)
-
-
- setLogFile = dbus.service.method(dbus_interface = 'org.gnome.Orca.Logging', in_signature = 's', out_signature = '')(setLogFile)
-
- def startRecording(self):
- '''Tells Orca to start logging speech and braille output.'''
- if not settings.enableRemoteLogging:
- return None
- debug.println(debug.LEVEL_FINEST, 'DBus Logging.startRecording')
- import logging
- import StringIO
- for logger in [
- 'braille',
- 'speech']:
- log = logging.getLogger(logger)
-
- try:
- (stringIO, handler) = loggingStreamHandlers[logger]
- handler.close()
- log.removeHandler(handler)
- stringIO.close()
- except:
- settings.enableRemoteLogging
-
- formatter = logging.Formatter('%(message)s')
- stringIO = StringIO.StringIO()
- handler = logging.StreamHandler(stringIO)
- handler.setFormatter(formatter)
- log.addHandler(handler)
- loggingStreamHandlers[logger] = [
- stringIO,
- handler]
- log.setLevel(logging.INFO)
-
-
- startRecording = dbus.service.method(dbus_interface = 'org.gnome.Orca.Logging', in_signature = '', out_signature = '')(startRecording)
-
- def stopRecording(self):
- '''Tells Orca to stop logging speech and braille output and
- to return whatever was recorded since the last call to
- startRecording.'''
- if not settings.enableRemoteLogging:
- return ''
- debug.println(debug.LEVEL_FINEST, 'DBus Logging.stopRecording')
- import logging
- import StringIO
- result = ''
- for logger in [
- 'braille',
- 'speech']:
- log = logging.getLogger(logger)
-
- try:
- (stringIO, handler) = loggingStreamHandlers[logger]
- handler.flush()
- handler.close()
- log.removeHandler(handler)
- result += stringIO.getvalue()
- stringIO.close()
- except:
- settings.enableRemoteLogging
- debug.printException(debug.LEVEL_OFF)
-
- stringIO = StringIO.StringIO()
-
- return result
-
- stopRecording = dbus.service.method(dbus_interface = 'org.gnome.Orca.Logging', in_signature = '', out_signature = 's')(stopRecording)
-
- obj = None
-
- def init():
- '''Sets up the Orca DBus service. This will only take effect once
- the Orca main loop starts.'''
- global obj
- if obj:
- return None
-
- try:
- dbus.mainloop.glib.DBusGMainLoop(set_as_default = True)
- bus = dbus.SessionBus()
- name = dbus.service.BusName('org.gnome.Orca', bus = bus)
- obj = Server('/', name)
- except:
- obj
- debug.println(debug.LEVEL_WARNING, 'dbusserver.py: Could not initialize DBus server')
-
-
-
- def shutdown():
- pass
-
-